Multiple-objective control of campaigns

ABSTRACT

Embodiments of the present invention provide systems, methods, and computer storage media directed at controlling a campaign. In embodiments, a method includes receiving event values respectively associated with corresponding events. The method can then utilize these event values in calculating an estimated impression value for a present logical interval of the campaign. The method can further include generating a price control signal based on a desired return on investment (ROI) associated with the campaign and an observed ROI of a previous logical interval of the campaign. Based on the estimated impression value and the price control signal, a bid price can be computed for the current logical interval of the campaign. This bid price can then be transmitted to a market associated with the campaign. Other embodiments may be described and/or claimed herein.

TECHNICAL FIELD

The present disclosure relates generally to computing. Morespecifically, and without limitation, the present disclosure relates tosystems and methods for controlling a marketing campaign based onmultiple objectives.

BACKGROUND

Online marketers are interested in placing marketing messages onwebsites to promote their products or services (also known as“impressions”). Influenced by a marketing message, a user may perform a“click” based on a marketing message or take another “action” such ascompleting an online form to request additional information with regardto the associated product or service. If the user later purchases theproduct or service, the purchase is referred to as a “conversion” of theimpression. In general, online marketers pay based on, for example,impressions, clicks, views, or conversions over the course of amarketing campaign, hereinafter merely referred to as a “campaign,” inan effort to achieve a desired revenue for the campaign. In a campaign,revenue generally refers to the amount of money actually spent or thenumber of events delivered.

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Unless otherwiseindicated herein, the materials described in this section are not priorart to the claims in this application and are not admitted to be priorart, or suggestions of the prior art, by inclusion in this section.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an illustrative marketing system, in accordance withembodiments of the present disclosure.

FIG. 2 depicts an illustrative online marketing control system forcontrolling an online marketing campaign operating in an onlinemarketing network, in accordance with various embodiments of the presentdisclosure.

FIG. 3 depicts an illustrative campaign control system, in accordancewith various embodiments of the present disclosure.

FIG. 4 depicts an illustrative process flow for controlling an onlinemarketing campaign, in accordance with various embodiments of thepresent disclosure.

FIG. 5 is a block diagram of an example computing device in whichvarious embodiments of the present disclosure may be employed.

DETAILED DESCRIPTION OF THE EMBODIMENTS

As discussed in greater detail below, in various embodiments, a campaigncontrol system can be configured to attempt to increase, or maximize,total value of a marketing campaign to which the campaign control systemis assigned. To accomplish this, the campaign control system can beconfigured to achieve a desired pacing, or budget, within theconstraints of a minimum desired return on investment (ROI) for thecampaign. The ROI of a campaign can be represented as the ratio of thetotal value delivered by the campaign divided to the total cost ofimpressions for the campaign (i.e., total value/total cost). The totalvalue of a campaign refers to the cumulative impression value of allawarded impressions. Impression value refers to the likelihood-adjustedaggregate dollar value of all relevant branding and performance eventsthat could potentially result from each awarded impression. Relevantbranding and performance events are referred to herein collectively asevents and are discussed in greater detail below. The total cost ofimpressions for the campaign refers to the cumulative cost over allimpressions awarded to the campaign. The cost of an impression refers tothe actual cost of the impression in an associated market (e.g.,clearing price in a second price cost model).

Reference will now be made in detail to illustrative embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts.

FIG. 1 depicts an illustrative marketing system 100, in accordance withembodiments of the present disclosure. As shown in FIG. 1, marketingsystem 100 may include one or more marketers 102, publishers 104,marketing servers 106, and campaign control systems 108 that are incommunication with one another through a network, such as the Internet110. The number and orientation of the computing components in FIG. 1 isprovided for purposes of illustration only. Any other number andorientation of components is possible. For example, one or moremarketers 102, publishers 104, marketing servers 106, and campaigncontrol systems 108 may be combined or co-located and/or communicatedirectly with one another, instead of over Internet 110. The componentsof FIG. 1 may include any type or configuration of computers and/orservers, such as, for example, a server cluster, a server farm, loadbalancing servers, distributed servers, etc. In addition, each componentmay include one or more processors, memories or other data storagedevices (i.e., computer-readable storage media), such as hard drives,NOR or NAND flash memory devices, or Read Only Memory (ROM) devices,etc., communications devices, and/or other types of computing elements.

Marketer 102 represent computing components associated with entitieshaving online marketing content (e.g., banner ads, pop-ups, etc.) thatthe entities desire to deliver to online consumers. Marketer 102 mayinteract with publishers 104, marketing servers 106, and/or campaigncontrol systems 108 through the Internet 110. Thus, marketer 102 may beable to communicate marketing information, such as ad information,targeting information, consumer information, budget information, biddinginformation, etc., to other entities in marketing system 100.

Publishers 104 represent computing components associated with entitieshaving inventories of available online marketing space. For example,publishers 104 may include computing components associated with onlinecontent providers, search engines, e-mail programs, web-basedapplications, or any computing component or program having online usertraffic. Publishers 104 may interact with marketers 102, marketingservers 106, and/or controllers 108 via the Internet 110. Thus,publishers 104 may be able to communicate inventory information, such assite information, demographic information, cost information, etc., toother computing components in system 100.

Marketing servers 106 may include servers or clusters of serversconfigured to process marketing information from marketer 102 and/orinventory information from publishers 104, either directly orindirectly. In certain embodiments, marketing servers 106 may be remoteweb servers that receive marketing information from marketer 102 andserve ads to be placed by publishers 104. Marketing servers 106 may beconfigured to serve ads across various domains of publishers 104, forexample, based on marketing information provided by marketers 102.Marketing servers 106 may also be configured to serve ads based oncontextual targeting of web sites, search results, and/or user profileinformation, all of which can be utilized in determining a targetaudience. In some embodiments, marketing servers 106 may be configuredto serve ads based on control signals generated by campaign controlsystems 108.

Campaign control system 108 may include computing systems configured toreceive information from computing components in system 100, process theinformation, and generate marketing control signals to be sent to othercomputing components in system 100, according to the illustrativemethods described herein. As discussed in greater detail below, campaigncontrol system 108 can be configured to attempt to increase, ormaximize, total value of the campaign to which the campaign controlsystem 300 is assigned. Campaign control systems 108 may include anytype or combination of computing systems, such as clustered computingmachines and/or servers, including virtual computing machines and/orvirtual servers. Campaign control systems 108 may include, for example,implementations of Adlearn Open Platforms (AOP) control systems offeredby America Online (AOL) of New York, N.Y. In some embodiments, campaigncontrol systems 108 may include an assembly of hardware, including amemory 112, a central processing unit (“CPU”) 114, and/or a userinterface 116. Memory 112 may include any type of RAM or ROM embodied ina physical, computer-readable storage medium, such as magnetic storageincluding floppy disk, hard disk, or magnetic tape; semiconductorstorage such as solid state disk (SSD) or flash memory; optical discstorage; or magneto-optical disc storage. CPU 114 may include one ormore processors for processing data according to instructions stored inthe memory, for example to perform the methods and processes discussedin detail herein. The functions of the processor may be provided by asingle dedicated processor or by a plurality of processors. Moreover,the processor may include, without limitation, digital signal processor(DSP) hardware, or any other hardware capable of executing software.User interface 116 may include any type or combination of input/outputdevices, such as a display monitor, graphical user interface,touch-screen or pad, keyboard, and/or mouse. In other embodiments,campaign control systems 108 may include virtual representations ofhardware operating, for example, on a virtualization server.

FIG. 2 depicts an illustrative online marketing environment 200 forcontrolling an online marketing campaign 202 operating in an onlinemarketing network 204. Marketing network 204 may include a network orcollection of one or more marketers 102, one or more publishers 104,marketing servers 106, campaign control systems 108, or other componentsof system 100. Elements of marketing network 204 may operate to receiveimpression requests associated with one or more marketing inventories,e.g., from publishers 104 such as websites or other computing componentswith an inventory of online marketing space. Marketing network 204 mayalso group impression requests for various marketing campaigns, e.g.,according to impressions to be “targeted” based on a combination ofattributes defined by the marketing requests. Marketing network 204 mayalso accept bids (e.g., from one or more campaign control systems 108)on the impression requests and process the bids to serve ads to theimpression requests.

Any number or type of marketing campaigns 202 may be operated withinmarketing network 204, across various marketing servers and domainsassociated with the Internet. Online marketing environment 200 may beimplemented by one or more of the marketers 102, publishers 104,marketing servers 106, and/or campaign control systems 108 described inFIG. 1. For example, online marketing environment 200 may represent theinteraction of one or more campaign control systems 108 with othercomputing components in system 100.

In one embodiment, online marketing environment 200 may include one ormore instances of campaign control system 108. Campaign control system108 may comprise computers or servers connected to the Internet. Suchcomputers or servers may be configured as described with respect tocampaign control system 108, as depicted by FIG. 1, or in any othersuitable configuration. Alternatively, campaign control system 108 maybe implemented by software modules executed by CPUs 114 of campaigncontrol system 108. Campaign control system 108 may be embodied entirelyin hardware, entirely in software, or in any combination of hardware andsoftware implemented across any number of computing devices.

Campaign control system 108 may be provided with a set of deliveryrequirements 210, which may be adjustable design parameters set by auser. For instance, the set of delivery requirements may include, adesired pacing 212, B^(rev) (e.g., daily budget goals, daily impressiondelivery goals), a desired minimum return on investment 214, ROI_(min),event values 216 associated with event objectives within the campaign,targeting requirements (e.g., based on a demographic analysis) for atarget audience, and/or spread requirements (e.g. to control marketingacross inventory units/cells/segments, and/or user targets, etc.). Theset of delivery requirements 210 may be implemented by campaign controlsystem 108 as discussed in greater detail below.

FIG. 3 depicts a block diagram of a portion of an illustrative campaigncontrol system 300 for controlling online marketing campaigns, inaccordance with various embodiments of the present disclosure. Campaigncontrol system 300 may generally be configured to utilize data observedin previous logical intervals of market 330 to satisfy a set of deliveryrequirements (e.g., delivery requirements 210 of FIG. 2). As usedherein, a previous logical interval refers to a previous time intervalof a marketing campaign. In operation, a campaign may be logically orarbitrarily divided into various logical intervals. Logical intervalsmay be uniformly divided time intervals, such as based on second,minute, hour, day, week, month, or so on. In addition, logical intervalsmay be logically tied with certain units or milestones in a campaign.Such units may relate to orders of a product or service (e.g.,conversions) after launching the campaign, e.g., every thousand orders.Such units may also, or alternatively, include a unit of budget spend onthe campaign, e.g., every thousand dollars. In these cases, where thelogical intervals are logically tied with certain units or milestone ina campaign, the logical intervals may be considered heterogeneous timeintervals.

In embodiments, campaign control system 300 can be configured to attemptto increase, or maximize, total value of the campaign to which thecampaign control system 300 is assigned. To accomplish this, campaigncontrol system 300 can be configured, as discussed in greater detailbelow, to achieve a desired pacing, or budget, within the constraints ofa minimum desired return on investment (ROI) for the campaign. The ROIof a campaign can be represented as the quotient of the total valuedelivered by the campaign divided by the total cost of impressions forthe campaign (i.e., total value/total cost). The total value of acampaign refers to the cumulative value of all relevant branding andperformance events that result from the awarded impressions. Relevantbranding and performance events are referred to herein collectively asevents and are discussed in greater detail below. The total cost ofimpressions for the campaign refers to the cumulative cost over allimpressions awarded to the campaign. The cost of an impression refers tothe actual cost of the impression in an associated market (e.g.,clearing price in a second price cost model).

As depicted, campaign control system 300 includes a controller 310(e.g., campaign control system 108 of FIGS. 1 & 2), a actuator 320, amarket 330, an event rate estimator 360, and an impression valueestimator 370. Each of these components may be communicatively coupledwith one another, for example, as depicted in FIG. 3. This communicativecoupling may be, for example, via a bus, network, shared memory, etc.,or any combination thereof. It will be appreciated that additionalcomponents may be included within campaign control system 300 that arenot depicted. These additional components could include components thatare integrated between two of the depicted components. For example, invarious embodiments, a cost estimator could be included between market330 and controller 310. In addition, the functionality of the depictedcomponents could be combined into fewer components or further dividedinto more components. As such, the depicted configuration of campaigncontrol system 300 is merely meant to be illustrative and should not betreated as limiting of the present disclosure.

Campaign controller 310 is configured to take as input a desired pacingreference signal 212, B^(rev). Desired pacing 212 may be user definedand may also be referred to as desired revenue for a defined period oftime within the marketing campaign. As used herein, revenue in thiscontext refers to actual dollars spent or actual events delivered. Assuch, desired pacing may be expressed as monetary units (e.g., dollars)or as a number of events. For example, if a marketing campaign has adaily budget of $900 and has spent $800 in a given day, observed pacingfor the campaign on that given day is $800.

Campaign controller 310 is also configured to take as input a desiredminimum ROI 214, ROI_(min). The desired minimum ROI 214 may be userdefined and can be represented as a number that depicts, for example,the minimum desired value that the user would like to achieve for anexpended cost for the marketing campaign. As such, desired ROI 214 maybe expressed, for example, as a percentage, ratio, decimal number, etc.For example, values below 1 could indicate the user is anticipatingexpending more cost than the value imparted by the delivered impression;values above 1 could indicate the user is anticipating that the valueimparted by the delivered impressions exceeds the cost expended, and avalue of 1 could indicate the user is anticipating that the valueimparted by the delivered impressions is equal to the cost expendedduring the campaign. It will be appreciated that the value imparted tothe user is subjective in nature and that different users may be lookingto achieve different objectives, and, as such, may assign differentvalues to different events.

Campaign controller 310 is also configured to take as input an observedcost, c, observed pacing, r, and an observed value, v, from a previouslogical interval. These observed variables can be transmitted tocontroller 310 from market 330 via the depicted control feedback loop.Observed cost, c, can be determined from actual cost data fortransactions that are observed in market 330. The observed cost may be,for example, a moving average calculated over a period of time. Thisperiod of time can be any duration of time that may be based uponcertain campaign characteristics. For example, a shorter period of timecan enable quicker reflection of changes in market 330; however theresults could be noisier than those of a moving average calculated overa longer period of time. A moving average calculated over a longerperiod of time, on the other hand, can be less noisy than a movingaverage calculated over a shorter period of time, but is slow to reactto market changes. As a result, the time period for such a movingaverage may be dependent on the campaign and/or volatility of market330. A moving average may be calculated by a moving average filter (notdepicted). In some embodiments, such a moving average filter may bein-line between market 330 and controller 310. Discrete observed costsin market 330 may be monitored, for example, via a cost sensorconfigured to obtain real-time data from marketplace 310. Inembodiments, this real time data may be specific to the campaign towhich campaign control system 300 is assigned.

Observed pacing, r, can be determined from actual pacing observed inmarket 330. As with observed cost, observed pacing may be a movingaverage calculated over a period of time. This period of time can be anyduration of time that may be selected based upon certain campaigncharacteristics, such as those discussed above in reference to observedcost (e.g., speed of reflecting changes vs noise). Discrete observedpacing in market 330 may be monitored, for example, via a pacing sensorconfigured to obtain real-time data about the campaign to which campaigncontrol system 300 is assigned.

Observed value, ν, can be determined from value observed fortransactions that occurred in market 330. Such observed value can bebased on the event values assigned to the campaign (e.g., event values216). As with observed cost and observed pacing, observed value may be amoving average calculated over a period of time. This period of time canbe any duration of time that may be selected based upon certain campaigncharacteristics, such as those discussed above in reference to observedcost (e.g., speed of reflecting changes vs noise). Discrete observedvalues in market 330 may be monitored, for example, via a value sensorconfigured to obtain real-time data about the campaign to which campaigncontrol system 300 is assigned.

Controller 310 may be configured to determine an ROI error, e_(ROI), anda pacing error, e_(p), based on the above discussed inputs to controller310. From these errors, campaign controller 310 can automaticallydetermine a price control signal, u. As used herein, automatic refers tothe performance of an action without user input. In embodiments, theprice control signal, u, is a result of a function of the ROI error andthe pacing error, ƒ(e_(ROI), e_(p)). This function may be configured toattempt to facilitate obtaining the desired pacing within the limits ofthe minimum ROI and/or inventory available in market 330. As such, u,can be updated in such a way that (1) observed pacing approximatelyconverges to desired pacing 212 while observed ROI remains at or aboveminimum ROI 214, (2) observed ROI approximately converges to minimum ROI214 while observed pacing remains at or below desired pacing 212, or (3)observed pacing approximately converges to maximum possible delivery(the inventory for market 330 is exhausted) while the observed ROIremains at or above minimum ROI 214. In some embodiments, controller 310can also be configured to generate an allocation control signal. Such anallocation control signal represents the percentage or ratio (e.g.,point value from 0 to 1) of inventory the ad campaign is willing topurchase at the bid price discussed below.

In various embodiments, controller 310 may be configured to periodicallyupdate the price control signal, u, as well as an allocation controlsignal, if utilized. These periodic updates may take place at predefinedtime intervals (e.g., every 15 minutes), based on a specific occurrence(e.g., based on a magnitude of change to an error signal), or any othersuitable period, or logical interval. In other embodiments, controller310 may update the price control signal, u, in real time as the abovediscussed error signals, or reference signals, change. For example, itwill be appreciated that the desired minimum ROI may change during thecampaign based on any number of factors (e.g., if a desired minimum ROIcannot be achieved by the campaign while delivering the budget in fullthe desired minimum ROI may be decreased). In response to such a change,the controller 310 may automatically update the price control signal, u,in accordance with the updated ROI_(min).

To facilitate obtaining the desired pacing 212 within the constraints ofdesired minimum ROI 214 to the marketer, the above described function,ƒ(e_(ROI), e_(p)), may utilize an adaptive control scheme in calculatingthe price control signal, u. Such an adaptive control scheme couldcalculate the u, and an optional allocation signal, based on a mostrecent value of the ROI error, a most recent value of the pacing error,and a stored controller state variable, which includes information aboutpast control performance. Such an adaptive control scheme is known inthe art and a person of ordinary skill in the art would be able toimplement such a control scheme. In other embodiments, alternativecontrol schemes may be utilized in place of the adaptive control scheme.Such control schemes are known in the art and would include an optimalcontrol scheme, a model predictive control scheme, aproportional-integral-derivative (PID) control scheme, a robust controlscheme, a stochastic control scheme, or any other suitable controlscheme.

Event rate estimator 360 is configured to take as input an observedimpression volume, n_(I), and observed volumes for events, n_(E). Thevolumes for events can include, but are not limited to, the number ofimpressions delivered that were in-view (e.g., within a displayedportion of a website); number impressions that resulted in a click;number of impressions that resulted in a conversion; number of videoimpressions that resulted in completion of an associated video ad; thenumber of impressions that were delivered within a target demographic;any other event, or any combination thereof. Each of these events can beconsidered an objective to a user (e.g., marketer) for which the usercan assign a subjective dollar value, or weight. It will be appreciatedthat this list of events is not exhaustive and is merely meant toillustrate possible events for which volumes may be monitored withinmarket 330. These volumes for events are collectively depicted asobserved event volumes, n_(E).

It will be appreciated that, in some embodiments, there can be aplurality of event rate estimators in campaign control system 300. Insuch embodiments each event rate estimator can be assigned to a specificsegment within the campaign. As used herein a segment refers to adefined portion of market 330. Such a segment may be, for example, awebsite, a group of individuals identified by demographic analysis(e.g., males between the age of 25 and 35 in California), a distinctindividual, etc. A segment may also be referred to in the art, andherein, as a cell or unit.

The observed impression volume, n_(I), and the observed event volumes,n_(E) can be determined from actual observations in market 330. Discreteobserved impression volumes for any discrete observed event volumes maybe monitored in market 330, for example, via segment impression sensors(not depicted) and segment event sensors (not depicted), respectively.Such sensors can be configured to obtain real-time data about thesegment to which these sensors are assigned.

Event rate estimator 360 can be configured to utilize the observedimpression volume and the observed volumes for events to determine anestimated probability of the occurrence of each of the events forimpression ‘i.’ As depicted, these estimated event probabilities includethe estimated probability of an awarded impression being an in-viewimpression, {circumflex over (p)}_(V,i); the estimated probability of anawarded impression resulting in a click, {circumflex over (p)}_(C,i);the estimated probability of an awarded impression resulting in aconversion, {circumflex over (p)}_(A,i); the estimated probability of anawarded impression resulting in fulfillment of a video ad (e.g., thevideo is completed or a certain percentage of the video ad is viewed),{circumflex over (p)}_(F,i); and the estimated probability of an awardedimpression being delivered to a target audience (e.g., demographic),{circumflex over (p)}_(T,i). It will be appreciated that the depictedestimated event probabilities are merely meant to be illustrative ofpossible events and that more or fewer events could be included withinthese estimated probabilities without departing from the scope of thisdisclosure. It will also be appreciated that combinations of eventscould also be reflected within these event probabilities. For example,event rate estimator 360 could be configured to determine an estimatedprobability of an awarded impression being delivered to a targetaudience and resulting in a click. These estimated probabilitiesproduced by event rate estimator 360 can then be output to impressionvalue estimator 370.

Impression value estimator 370 is configured to take as input theestimated event probabilities output by event rate estimator 360 andcorresponding event values 216. The depicted corresponding event valuesinclude values that have been associated with each of the events forwhich a probability has been produced. As such, the event values 216include a value associated with an in-view impression, ν_(V,i); a valueassociated with a click, ν_(C,i); a value associated with a conversion,ν_(A,i); a value associated with fulfillment of a video ad (e.g., thevideo is completed or a certain percentage of the video ad is viewed),ν_(F,i); a value associated with an impression delivered to a targetaudience (e.g., demographic), ν_(T,i). In addition, the depicted eventvalues 216 include a value associated with each awarded impression,ν_(I,i). Because it can be assumed that the probability of an awardedimpression resulting in an awarded impression is 100%, or 1, then theevent rate estimator 360 need not be configured to produce an estimatedprobability for an awarded impression. These event values could be inputto campaign control system 300 by a user (e.g., marketer) and could besubjectively determined (e.g., determined by business objectives of themarketer with respect to the campaign). It will be appreciated that thedepicted event values are merely meant to be illustrative of possibleevents and that more or fewer events could be included within theseevent values without departing from the scope of this disclosure. Itwill also be appreciated that, as with the above discussed estimatedprobabilities, combinations of events could also be reflected withinthese event values. For example, a value could be associated with anawarded impression being delivered to a target audience and resulting ina click.

From the estimated probabilities received from event rate estimator 360and the event values defined within event values 216, the impressionvalue estimator 370 can calculate a likelihood-adjusted value for eachawarded impression. To accomplish this, impression value estimator 370can be configured to determine the product of each event probability andthe corresponding event value and to sum these values together todetermine an estimated impression value, {circumflex over (v)}_(i). Assuch, in the depicted embodiment, impression value estimator 370 can beconfigured to determine the estimated impression value in accordancewith the following equation:

{circumflex over (ν)}_(i)=ν_(I,i) +{circumflex over (p)} _(V,i)ν_(V,i)+{circumflex over (p)} _(C,i)ν_(C,i) +{circumflex over (p)}_(A,i)ν_(A,i) +{circumflex over (p)} _(F,i)ν_(F,i) +{circumflex over(p)} _(T,i)ν_(T,i)   Equation 1

From equation 1, it will be appreciated that by assigning a value ofzero to any event value effectively removes this value from thecalculation of the estimated impression value without impacting the restof equation 1. It will be appreciated that Equation 1 is merely meant tobe illustrative in nature, and that additional, or fewer, event valuescan be included without departing from the scope of this disclosure.

It will also be appreciated that the estimated impression valuecalculation depicted by equation 1 supports impression dependent eventvalues, where ‘i’ represents the index of different groups ofimpressions. This enables distinguishing between groups of impressioninventory such as, for example, distinguishing between premium andnon-premium inventory. As used in this context, premium inventory mayrefer to impression inventory within the market that is considered to beof higher quality, or value, than non-premium inventory that isconsidered to be of lesser quality. This premium versus non-premiumdesignation could be based on any applicable factor, such as, forexample, specific websites (e.g., websites containing content associatedwith the product or service being marketed could be considered premiumover generic websites), demographics associated with the inventory, etc.As a more specific example, the branding value of an impression maydiffer in that v_(I,i) is set to a larger value if i corresponds to ateenage user, and v_(I,i) is set to a lower value otherwise.

Actuator 320 takes the price control signal, u; the estimated impressionvalue, {circumflex over (ν)}_(i); and an allocation control signal, ifused, as input. Actuator 320 may utilize the combination of these inputsto calculate a bid price, b_(i), for the respective segment. In someembodiments, the bid price, b_(i), is calculated by taking the productof u and {circumflex over (ν)}_(i). In other embodiments, the bid pricemay be a capped segment bid price calculated, for example, using theequation b_(i)=min(maxCPI, u_(p){circumflex over (ν)}_(i)), where maxCPIis max cost per impression, or, as another example, equationb_(i)=min(maxCPI_(i), u_(p){circumflex over (ν)}_(i)), where maxCPI_(i)is max cost per impression for segment i. It will be appreciated bysomeone of ordinary skill in the art that these examples are merelymeant to illustrative and are not intended to limit the scope of thisdisclosure. For example, min can be replaced by max and/or the min (max)operation may be conditional based on user, ad, or impression specificinformation. In addition, the capping may apply only for a certain typeof user, a certain time of the day, in a certain geographic region, etc.

Because the bid price, b_(i), is calculated based on the estimatedimpression value, {circumflex over (ν)}_(i), produced by impressionvalue estimator 370, the bid price can be depicted based on theestimated impression value. As such, utilizing the event values totarget different events can be represented in terms of how these eventvalues impact the estimated impression value and therefore impact thebid price. Examples of this are discussed below.

As a first example, if the campaign merely wants to concentrate onimpressions delivered, then the following values can be set to zero,{circumflex over (ν)}_(V,i)=ν_(C,i)=ν_(A,i)=ν_(F,i)=ν_(T,i)=0. In suchan example, where all impressions are valued equally, ν_(I,i) is notimpression dependent (i.e., is impression independent) and is thereforethe same for all impressions and can be expressed as ν_(I). As such, thebid, b_(i), could be represented by the following equation:b_(i)=uν_(I).

In another example, if the campaign merely wants to concentrate onclicks delivered, then the following values can be set to zero,ν_(I,i)=ν_(V,i)=ν_(A,i)=ν_(F,i)=ν_(T,i)=0. In such an example, where allclicks are valued equally, ν_(C,i) is not impression dependent and istherefore the same for all impressions and can be expressed as ν_(c). Assuch, the bid, b_(i), could be represented by the following equation:b_(i)=u{circumflex over (p)}_(C,i)ν_(C).

In yet another example, if the campaign merely wants to concentrate onin-view impression (i.e., impressions that are displayed on screen),then the following values can be set to zero,ν_(I,i)=ν_(C,i)=ν_(A,i)=ν_(F,i)=ν_(T,i)=0. In such an example, where allin-view impressions are valued equally, ν_(V,i) is not impressiondependent and is therefore the same for all impressions and can beexpressed as ν_(V). As such, the bid, b_(i), could be represented by thefollowing equation: b_(i)=u{circumflex over (p)}_(V,i)ν_(V).

In yet another example, if the campaign wants to concentrate on numberof impressions and conversion performance, then the following values canbe set to zero, ν_(V,i)=ν_(C,i)=ν_(F,i)=ν_(T,i)=0. In such an example,where all impressions are valued equally and all conversions are valuedequally. That is, ν_(I,i) and ν_(A,i) are not impression dependent andare therefore the same for all impressions and can be expressed as ν_(I)and ν_(A), respectively. As such, the bid, b_(i), could be representedby the following equation: b_(i)=u(ν_(I)+{circumflex over(p)}_(A,i)ν_(A)).

In a final example, if the campaign wants to concentrate on premiumin-view impressions and in-target impressions, then the following valuescan be set to zero, ν_(I,i)=ν_(C,i)=ν_(A,i)=ν_(F,i)=0. Because thecampaign is concentrating on premium in-view impression, all impressionsare not equal with respect to the in-view value and therefore ν_(V,i) isimpression dependent, where ‘i’ indicates an index distinguishingbetween premium and non-premium impressions. With respect to in-targetimpressions however, all in-target impressions are valued equally andtherefore, ν_(T,i) is not impression dependent and is therefore the samefor all impressions and can be expressed as ν_(T). As such, the bid,b_(i), could be represented by the following equation:b_(i)=u({circumflex over (p)}_(V,i)ν_(V,i)+{circumflex over(p)}_(T,i)ν_(T)). It will be appreciated that the above discussedexamples are merely meant to be illustrative and that any number ofadditional configurations can be adapted from the above describedembodiments.

Market 330 represents a bidding environment in which marketers place adrequests for marketing space that is offered by publishers. The abovediscussed components facilitate a marketer in obtaining the desiredpacing, B^(rev), within the limits of desired ROI, ROI_(min), and/orinventory available in marketing market 330.

As depicted, additional control systems (e.g., control systems 2 throughcontrol system x) can also be communicating with market 330. Each ofthese control systems can be configured in a similar manner to controlsystem 300; however, it will be appreciated that the event values,desired minimum ROI, and the desired pacing may vary between each ofthese addition control systems.

FIG. 4 depicts an illustrative process flow 400 for controlling onlinemarketing campaigns by a campaign control system (e.g., campaign controlsystem 300 of FIG. 3), in accordance with various embodiments of thepresent disclosure. Process flow 400 may begin at block 402 where aplurality of event values associated with a corresponding plurality ofevent objectives of a marketing campaign is received. In addition to theplurality of event values, as discussed below, a desired ROI indicatorand a desired pacing indicator may also be received at block 402.

The corresponding plurality of event values can include valuesassociated with each event that a campaign control system is configuredto monitor for within a market associated with the campaign controlsystem. As such, the event values can include a value associated with anin-view impression, ν_(V,i); a value associated with a click, ν_(C,i); avalue associated with a conversion, ν_(A,i); a value associated withfulfillment of a video ad (e.g., the video is completed or a certainpercentage of the video ad is viewed), ν_(F,i); a value associated withan impression delivered to a target audience (e.g., demographic),ν_(T,i). In addition, such event values can also include a valueassociated with each awarded impression, ν_(I,i). These event valuescould be input to the campaign control system by a user (e.g., marketer)and could be subjectively determined (e.g., determined by businessobjectives of the marketer with respect to the campaign). It will beappreciated that the above discussed event values are merely meant to beillustrative of possible events and that more or fewer events could beincluded within these event values without departing from the scope ofthis disclosure. It will also be appreciated that combinations of eventscould also be reflected within these event values. For example, a valuecould be associated with an awarded impression being delivered to atarget audience and resulting in a click. Any event or combination ofevents capable of being monitored within a market associated with acampaign control system can be considered an objective and iscontemplated as being within the scope of this disclosure.

At block 404 an estimated impression value for a present logicalinterval of the campaign is calculated based, at least in part, on theplurality of event values received at block 402. In various embodiments,this estimated impression value may be further based on probabilities ofthe occurrence of each event for which an event value has been defined.The calculation of such an estimated impression value can beaccomplished in a same or similar manner to that described in referenceto FIG. 3, above.

At block 406, a price control signal is generated by the campaigncontrol system based, at least in part, on a desired ROI associated withthe campaign and an actual ROI observed in a previous logical intervalof the campaign. The desired ROI may be defined by a user and may bereceived as input to the campaign control system. In some embodiments,the desired ROI can represent a minimum desired ROI (e.g., ROI., 214)which a user (e.g., marketer) would like to achieve. The actual ROIobserved in the previous logical interval can be based on a ratio ofobserved value of impressions delivered within the market during theprevious logical interval to an observed cost of those impressions. Itwill be appreciated that observed value of the impressions would becalculated in accordance with the events delivered by those impressionsin conjunction with the plurality of event values received at block 402.Observed value and observed cost can be generated in a same or similarmanner to that discussed above in reference to FIG. 3.

In some embodiments, the price control signal determined at block 406 isalso based on a desired pacing (e.g., B^(rev) 214 of FIG. 3) for thecampaign and actual pacing observed in a previous logical interval ofthe campaign. As with the desired ROI, desired pacing may be defined bya user and may be received as input to the campaign control system. Theactual pacing observed in the previous logical interval can be based onactual observations of pacing within the associated market and can begenerated in a same or similar manner to that discussed above inreference to FIG. 3.

As discussed in reference to FIG. 3, the price control signal may bedetermined based on an ROI error, calculated from the desired ROI andthe observed ROI, and a pacing error, calculated from the desired pacingand the observed pacing. In some embodiments, the price control signalis a result of a function of both the ROI error and the pacing error,(e.g., ƒ(e_(ROI), e_(p)) discussed above in reference to FIG. 3). Thisfunction may be configured to attempt to facilitate obtaining thedesired pacing within the limits of the minimum ROI and/or inventoryavailable in the market. As such, u, can be updated in such a way that(1) observed pacing approximately converges to desired pacing whileobserved ROI remains at or above the desired ROI, (2) observed ROIapproximately converges to the desired ROI while observed pacing remainsat or below desired pacing, or (3) observed pacing approximatelyconverges to maximum possible delivery (the inventory in the market isexhausted) while the observed ROI remains at or above the desired ROI.

In some embodiments, the price control is determined utilizing anadaptive control scheme to calculate the price control. Such an adaptivecontrol scheme could calculate the control signal, and an optionalallocation signal, based on a most recent value of the ROI error, a mostrecent value of the pacing error, and a stored controller statevariable, which includes information about the past control performance.The adaptive control scheme is known in the art and a person of ordinaryskill in the art would be able to implement such a control scheme. Inother embodiments, alternative control schemes, may be utilized in placeof the above discussed adaptive control scheme. Such control schemes areknown in the art and would include an optimal control scheme, a modelpredictive control scheme, a proportional-integral-derivative (PID)control scheme, a robust control scheme, a stochastic control scheme, orany other suitable control scheme.

At block 408 a bid is calculated based on the price control signaldetermined at block 406 and the estimated impression value calculated atblock 404. In some embodiments, the bid price is calculated by takingthe product of the price control signal and the estimated impressionvalue. In other embodiments, the bid price may be a capped bid pricecalculated, for example, using the equation b_(i)=min(maxCPI,u_(p){circumflex over (ν)}_(i)), where maxCPI is max cost perimpression. It will be appreciated by someone of ordinary skill in theart that this example is merely meant to be illustrative and is notintended to limit the scope of this disclosure. For example, min can bereplaced by max and/or the min (max) operation may be conditional basedon user, ad, or impression specific information. In addition, thecapping may apply only for a certain type of user, a certain time of theday, in a certain geographic region, etc. Finally at block 410, the bidis transmitted to the market associated with the campaign.

Having described embodiments of the present invention, an exampleoperating environment in which embodiments of the present invention maybe implemented is described below in order to provide a general contextfor various aspects of the present invention. Referring to FIG. 5, anillustrative operating environment, or computing platform, forimplementing embodiments of the present invention is shown anddesignated generally as computing device 500. Computing device 500 isbut one example of a suitable computing environment and is not intendedto suggest any limitation as to the scope of use or functionality of theinvention. Neither should the computing device 500 be interpreted ashaving any dependency or requirement relating to any one or combinationof components illustrated.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program modules, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program modules including routines, programs,objects, components, data structures, etc., refer to code that performparticular tasks or implement particular abstract data types. Theinvention may be practiced in a variety of system configurations,including hand-held devices, consumer electronics, general-purposecomputers, more specialized computing devices, etc. The invention mayalso be practiced in distributed computing environments where tasks areperformed by remote-processing devices that are linked through acommunications network.

With reference to FIG. 5, computing device 500 includes a bus 510 thatdirectly or indirectly couples the following devices: memory 520, one ormore processors 530, one or more presentation components 540,input/output (I/O) ports 550, I/O components 560, and an illustrativepower supply 570. Bus 510 represents what may be one or more busses(such as an address bus, data bus, or combination thereof). Althoughdepicted in FIG. 5, for the sake of clarity, as delineated boxes thatdepict groups of devices without overlap between these groups ofdevices, in reality this delineation is not so clear cut and a devicemay well fall within multiple ones of these depicted boxes. For example,one may consider a display to be one of the one or more presentationcomponents 540 while also being one of the I/O components 560. Asanother example, processors have memory integrated therewith in the formof cache; however, there is no overlap between the one or moreprocessors 530 and the memory 520. A person having ordinary skill in theart will readily recognize that such is the nature of the art, and it isreiterated that the diagram of FIG. 5 merely depicts an illustrativecomputing device that can be used in connection with one or moreembodiments of the present invention. It should also be noticed thatdistinction is not made between such categories as “workstation,”“server,” “laptop,” “hand-held device,” etc., as all such devices arecontemplated to be within the scope of computing device 500 of FIG. 5and any other reference to “computing device,” unless the contextclearly indicates otherwise.

Computing device 500 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by computing device 500 and includes both volatile andnonvolatile media, and removable and non-removable media. By way ofexample, and not limitation, computer-readable media may comprisecomputer storage media and communication media. Computer storage mediaincludes both volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage of informationsuch as computer-readable instructions, data structures, program modulesor other data. Computer storage media includes, but is not limited to,RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical disk storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by computing device 500.Computer storage media does not comprise signals per se. Communicationmedia typically embodies computer-readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. Combinations of any ofthe above should also be included within the scope of computer-readablemedia.

Memory 520 includes computer-storage media in the form of volatileand/or nonvolatile memory. The memory may be removable, non-removable,or a combination thereof. Typical hardware devices may include, forexample, solid-state memory, hard drives, optical-disc drives, etc.Computing device 500 includes one or more processors 530 that read datafrom various entities such as memory 520 or I/O components 560.Presentation component(s) 540 present data indications to a user orother device. Illustrative presentation components include a displaydevice, speaker, printing component, vibrating component, etc.

In various embodiments, memory 520 includes, in particular, temporal andpersistent copies of multiple objective control logic 522. Multipleobjective control logic 522 includes instructions that, when executed byone or more processors 530, result in computing device 500 performingthe procedures of process 400, or any subset thereof. In variousembodiments, multiple objective control logic 522 includes instructionsthat, when executed by processor 530, result in computing device 500performing various functions associated with, but not limited to,campaign control system 300, or any components thereof.

In some embodiments, one or more processors 530 may be packaged togetherwith multiple objective control logic 522. In some embodiments, one ormore processors 530 may be packaged together with multiple objectivecontrol logic 522 to form a System in Package (SiP). In someembodiments, one or more processors 530 can be integrated on the samedie with multiple objective control logic 522. In some embodiments,processor 530 can be integrated on the same die with multiple objectivecontrol logic 522 to form a System on Chip (SoC).

In the preceding detailed description, reference is made to theaccompanying drawings which form a part hereof wherein like numeralsdesignate like parts throughout, and in which is shown, by way ofillustration, embodiments that may be practiced. It is to be understoodthat other embodiments may be utilized and structural or logical changesmay be made without departing from the scope of the present disclosure.Therefore, the preceding detailed description is not to be taken in alimiting sense, and the scope of embodiments is defined by the appendedclaims and their equivalents.

Various aspects of the illustrative embodiments have been describedusing terms commonly employed by those skilled in the art to convey thesubstance of their work to others skilled in the art. However, it willbe apparent to those skilled in the art that alternate embodiments maybe practiced with only some of the described aspects. For purposes ofexplanation, specific numbers, materials, and configurations are setforth in order to provide a thorough understanding of the illustrativeembodiments. However, it will be apparent to one skilled in the art thatalternate embodiments may be practiced without the specific details. Inother instances, well-known features have been omitted or simplified inorder not to obscure the illustrative embodiments.

Various operations have been described as multiple discrete operations,in turn, in a manner that is most helpful in understanding theillustrative embodiments; however, the order of description should notbe construed as to imply that these operations are necessarily orderdependent. In particular, these operations need not be performed in theorder of presentation. Further, descriptions of operations as separateoperations should not be construed as requiring that the operations benecessarily performed independently and/or by separate entities.Descriptions of entities and/or modules as separate modules shouldlikewise not be construed as requiring that the modules be separateand/or perform separate operations. In various embodiments, illustratedand/or described operations, entities, data, and/or modules may bemerged, broken into further sub-parts, and/or omitted.

The phrase “in one embodiment” or “in an embodiment” is used repeatedly.The phrase generally does not refer to the same embodiment; however, itmay. The terms “comprising,” “having,” and “including” are synonymous,unless the context dictates otherwise. The phrase “A/B” means “A or B.”The phrase “A and/or B” means “(A), (B), or (A and B).”The phrase “atleast one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (Band C) or (A, B and C).”

What is claimed is:
 1. A method of controlling campaign objectivescomprising: receiving, by a campaign control system, a plurality ofevent values associated with a corresponding plurality of events, theevent values defining the campaign objectives; calculating, by thecampaign control system, an estimated impression value for a presentlogical interval of the campaign based, at least in part, on theplurality of event values; generating, by the campaign control system, aprice control signal based, at least in part, on a desired return oninvestment (ROI) associated with the campaign and an observed ROI of aprevious logical interval of the campaign; computing, by the campaigncontrol system, a bid price for the current logical interval of thecampaign based, at least in part, on the estimated impression value andthe control signal; and transmitting, by the campaign control system,the bid price to a market associated with the campaign.
 2. The method ofclaim 1, further comprising: receiving, by the campaign control system,the plurality of event values associated with the campaign objectives,wherein the plurality of event values are defined by a user of thecomputing system.
 3. The method of claim 1, wherein calculating theestimated impression value for the present logical interval of thecampaign is also based on a respective estimated probability of animpression within the market resulting in each of the plurality ofevents.
 4. The method of claim 3, wherein the respective estimatedprobability is determined based on observed events of the previouslogical interval of the campaign.
 5. The method of claim 1, whereingenerating the price control signal is further based on a desired pacingassociated with the campaign and an observed pacing of the previouslogical interval of the campaign.
 6. The method of claim 5, furthercomprising: determining an ROI error based on the desired ROI and anobserved ROI of a previous logical interval of the campaign; anddetermining a pacing error based on the desired pacing and an observedpacing of a previous logical interval of the campaign, whereingenerating the price control signal is based on the ROI error and thepacing error.
 7. The method of claim 1, wherein the campaign objectivesare associated with one or more of: in-view impressions; impressionsresulting in clicks; impressions resulting in conversions; impressionsdelivered to a target demographic of the campaign; or completion ofvideo content associated with the campaign.
 8. The method of claim 1,wherein the plurality of event values include impression dependent eventvalues.
 9. The method of claim 7, wherein the plurality of event valuesinclude impression independent event values.
 10. One or morecomputer-readable media having instructions stored thereon, wherein theinstructions, when executed by one or more processors of a computingsystem, provide the computing system with a control system to: receive aplurality of event values associated with a corresponding plurality ofevents, an indicator of a desired return on investment (ROI), and anindicator of a desired pacing, wherein the event values defineobjectives of a campaign to which the control system is assigned;calculate an estimated impression value for a present logical intervalof the campaign based, at least in part, on the plurality of eventvalues; determine an ROI error based on the desired ROI and an observedROI of a previous logical interval of the campaign; determine a pacingerror based on the desired pacing and an observed pacing of a previouslogical interval of the campaign; generate a price control signal based,at least in part, on the ROI error and the pacing error; compute a bidprice for the current logical interval of the campaign based, at leastin part, on the estimated impression value and the control signal; andtransmit the bid price to a market associated with the campaign.
 11. Theone or more computer-readable media of claim 10, wherein the controlsystem is further to: receive the plurality of event values, wherein theplurality of event values are defined by a user of the computing system.12. The one or more computer-readable media of claim 10, whereincalculating the estimated impression value for the present logicalinterval of the campaign is also based on a respective estimatedprobability of an impression within the market resulting in each of theplurality of events.
 13. The one or more computer-readable media ofclaim 12, wherein the respective estimated probability is determinedbased on observed events of the previous logical interval of thecampaign.
 14. The one or more computer-readable media of claim 10,wherein the objectives of the campaign are associated with one or moreof: in-view impressions; impressions resulting in clicks; impressionsresulting in conversions; impressions delivered to a target demographicof the campaign; or completion of video content associated with thecampaign.
 15. A computing system comprising: one or more processors; andone or more computer-readable media having instructions stored thereon,wherein the instructions, when executed by the one or more processorscause the computing system to: receive a plurality of event valuesassociated with a corresponding plurality of events, an indicator of adesired return on investment (ROI), and an indicator of a desiredpacing, wherein the event values define objectives of a campaign towhich the computing system is assigned; calculate an estimatedimpression value for a present logical interval of the campaign based,at least in part, on the plurality of event values; determine an ROIerror based on the desired ROI and an observed ROI of a previous logicalinterval of the campaign; determine a pacing error based on the desiredpacing and an observed pacing of a previous logical interval of thecampaign; generate a price control signal based, at least in part, onthe ROI error and the pacing error; compute a bid price for the currentlogical interval of the campaign based, at least in part, on theestimated impression value and the control signal; and transmit the bidprice to a market associated with the campaign.
 16. The computing systemof claim 15, wherein the computing system is further to: receive theplurality of event values associated with the campaign objectives,wherein the plurality of event values are defined by a user of thecomputing system.
 17. The computing system of claim 15, whereincalculating the estimated impression value for the present logicalinterval of the campaign is also based on a respective estimatedprobability of an impression within the market resulting in each of theplurality of events.
 18. The computing system of claim 17, wherein therespective estimated probability is determined based on observed eventsof the previous logical interval of the campaign.
 19. The computingsystem of claim 15, wherein the campaign objectives are associated withone or more of: in-view impressions; impressions resulting in clicks;impressions resulting in conversions; impressions delivered to a targetdemographic of the campaign; or completion of video content associatedwith the campaign.
 20. The computing system of claim 15, wherein theplurality of event values include impression dependent event values andimpression independent event values.